# import json
import json

a = "python"
# print(a, type(a))
b = {"city": "hunan"}
# print(b, type(b))
c = '{"city": "hunan"}'
# print(c, type(c)) # json 数据格式  本质上还是字符串数据
# dict-->str
# 第一种方法
# res = str(b)
# print(res, type(res))
# # 第二种方法
# res = json.dumps(b)
# print(res, type(res))  # {"city": "hunan"} <class 'str'>

# str -->dict
# data = '{"age":18}' # 必须是双引号
# eval爬虫中遇到数据类型的转换是我们再深入讲
# print(data, type(data))
# 第一种方法  报错
# res = dict(data)  # dict() 创建
# print(res)
#
# # 第二种方法
# res = json.loads(data)
# print(res, type(res))

# # 怎么去拿到18
# print(res["age"])
# print(res.get("age"))


# import json

data = {"name": "yueyue"}
f = open("data.json", mode="w")
# f.write(data)  # must be str, not dict
# 写进去
json.dump(data, f)  # 将字典转换成json文件 然后写入文件

# 读取文件
f = open("data.json", mode="r")
res = f.read()
print(type(res), res)
f.seek(0)
# # 运行下面之前先把上面的read注释掉  因为指针在最后面了 读取不了了 或者seek到0
j_data = json.load(f)  # 将json对象转换成字典
print(j_data)
# print(type(j_data), j_data.get("name"))